<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>处理 XForms</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="features.sessions.html">会话</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="features.file-upload.html">文件上传处理</a></div>
 <div class="up"><a href="features.html">特点</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="features.xforms" class="chapter">
 <h1>处理 XForms</h1>


 <p class="para">
  <a href="http://www.w3.org/MarkUp/Forms/" class="link external">&raquo;&nbsp;XForms</a> 定义了一种传统 web
  表单的变种，它可以用于更多的平台和浏览器，甚至非传统的媒体例如 PDF 文档。
 </p>

 <p class="para">
  XFroms 的第一个关键区别是表单怎样发送到客户端。<a href="http://www.w3.org/MarkUp/Forms/2003/xforms-for-html-authors.html" class="link external">&raquo;&nbsp;XForms for HTML Authors</a>
  包含有怎样创建 XForms 的详细说明。本节只看一个简单例子。
 </p>

 <div class="example" id="example-348">
  <p><strong>Example #1 一个简单的 XForms 搜索表单</strong></p>
  <div class="example-contents">
<div class="htmlcode"><pre class="htmlcode">&lt;h:html xmlns:h=&quot;http://www.w3.org/1999/xhtml&quot;
        xmlns=&quot;http://www.w3.org/2002/xforms&quot;&gt;
&lt;h:head&gt;
 &lt;h:title&gt;Search&lt;/h:title&gt;
 &lt;model&gt;
  &lt;submission action=&quot;http://example.com/search&quot;
              method=&quot;post&quot; xml:id=&quot;s&quot;/&gt;
 &lt;/model&gt;
&lt;/h:head&gt;
&lt;h:body&gt;
 &lt;h:p&gt;
  &lt;input ref=&quot;q&quot;&gt;&lt;label&gt;Find&lt;/label&gt;&lt;/input&gt;
  &lt;submit submission=&quot;s&quot;&gt;&lt;label&gt;Go&lt;/label&gt;&lt;/submit&gt;
 &lt;/h:p&gt;
&lt;/h:body&gt;
&lt;/h:html&gt;</pre>
</div>
  </div>

 </div>

 <p class="para">
  上面的表单显示一个文本输入框（命名为
  <em><code class="parameter">q</code></em>）和一个提交按钮。当点击提交按钮，表单将被发送到
  <em>action</em> 所指示的页面。
 </p>

 <p class="para">
  下面是从 web 应用端的角度看上去的区别。在普通的
  HTML 表单中，数据发送格式是
  <em>application/x-www-form-urlencoded</em>，在
  XForms 的世界中，该信息是以 XML 格式数据发送的。
 </p>

 <p class="para">
  如果选择使用 XForms，那么数据为 XML，这种情况下，在
  <var class="varname"><var class="varname"><a href="reserved.variables.httprawpostdata.html" class="classname">$HTTP_RAW_POST_DATA</a></var></var> 中包含了由浏览器产生的
  XML 文档，可以将其传递给所偏好的 XSLT 引擎或者文档解析器。
 </p>

 <p class="para">
  如果对格式不感兴趣，只想让数据进入到传统的
  <var class="varname"><var class="varname"><a href="reserved.variables.post.html" class="classname">$_POST</a></var></var> 变量中，可以指示客户端浏览器将其以
  <em>application/x-www-form-urlencoded</em>
  格式发送，只要将 <em><code class="parameter">method</code></em> 属性改成
  <em class="emphasis">urlencoded-post</em> 即可。
 </p>

 <div class="example" id="example-349">
  <p><strong>Example #2 使用 XForm 来产生 <var class="varname"><var class="varname"><a href="reserved.variables.post.html" class="classname">$_POST</a></var></var></strong></p>
  <div class="example-contents">
<div class="htmlcode"><pre class="htmlcode">&lt;h:html xmlns:h=&quot;http://www.w3.org/1999/xhtml&quot;
        xmlns=&quot;http://www.w3.org/2002/xforms&quot;&gt;
&lt;h:head&gt;
 &lt;h:title&gt;Search&lt;/h:title&gt;
 &lt;model&gt;
  &lt;submission action=&quot;http://example.com/search&quot;
              method=&quot;urlencoded-post&quot; xml:id=&quot;s&quot;/&gt;
 &lt;/model&gt;
&lt;/h:head&gt;
&lt;h:body&gt;
 &lt;h:p&gt;
  &lt;input ref=&quot;q&quot;&gt;&lt;label&gt;Find&lt;/label&gt;&lt;/input&gt;
  &lt;submit submission=&quot;s&quot;&gt;&lt;label&gt;Go&lt;/label&gt;&lt;/submit&gt;
 &lt;/h:p&gt;
&lt;/h:body&gt;
&lt;/h:html&gt;</pre>
</div>
  </div>

 </div>

 <blockquote class="note"><p><strong class="note">Note</strong>: 
  <span class="simpara">
   在写本文档时，许多浏览器还不支持 XForms。如果上面例子失败请检查自己的浏览器版本。
  </span>
 </p></blockquote>

</div>
<hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="features.sessions.html">会话</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="features.file-upload.html">文件上传处理</a></div>
 <div class="up"><a href="features.html">特点</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>
